﻿/*
个位数字 
Time Limit:1000MS  Memory Limit:32768K

  
Description:
Ray 参加了数学兴趣小组，其中一道题目是求a^b(a的b次方)个位数字是多少，
聪明的Ray 一下子就解决了，你是否也像Ray 一样聪明呢？

Input:
第一行是一个整数N，表示有N组数据1<=N<=10000。每组数据是两个整数a和b，a、b的位数都不超过100位且a、b>0。 
Output:
输出a^b的个位数字，每组占一行。 
Sample Input:
3
3 2
12 9
123456789 121

Sample Output:
9
2
9
*/
#include <string>
#include <iostream>

using namespace std;
int main()
{
	//个位数的幂小于四次一轮回
	const int figures[][4] ={
		{0,0,0,0},
		{1,1,1,1},
		{2,4,8,6},
		{3,9,7,1},
		{4,6,4,6},
		{5,5,5,5},
		{6,6,6,6},
		{7,9,3,1},
		{8,4,2,6},
		{9,1,9,1}
	};
	int n;
	cin>>n;
	while (n--)
	{
		string base, exponent;
		cin>>base>>exponent;
		
		
		size_t length = exponent.length();
		int last= (exponent[length-1]-'0');
		if(length>1)
			last += (exponent[length-2]-'0')*10 ;
		
		cout<<figures[base[base.length()-1]-'0'][(last+3)%4]<<endl;
		
	}
	
	return 0;
}